package com.lanchetech.admin.service;

import com.lanchetech.bean.request.*;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.*;
import com.lanchetech.entity.BonusCount;
import com.lanchetech.entity.ConsumptionRecord;
import com.lanchetech.entity.Honor;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;

public interface VipService {

    ResultData<BasePageResp<IdentityVO>> getIdentityPage(@RequestBody IdentityReq req);

    BaseResp updateUserLevel(Long userId, Integer level);

    BaseResp createUserLevel(VipReq req);

    BaseResp deleteIdentity(Long id);

    BaseResp createConsumptionRecord(ConsumptionRecord req);

    BaseResp banUserForCommission(Long userId, Integer status);

    ResultData<BasePageResp<ConsumptionAmountVO>> getConsumptionAmountPage(PageReq req);

    ResultData<BasePageResp<ConsumptionRecordVO>> getConsumptionRecordPage(PageReq req);

    ResultData<BasePageResp<HonorVO>> getHonorPage(PageReq req);

    BaseResp deleteHonor(Long id);

    BaseResp editHonor(Honor req);

    ResultData<List<BonusCount>> getBonusCountList();

    ResultData<BasePageResp<CardFlowVO>> getCardFlowPage(PageReq req);

    ResultData<CountOrderVO> countOrder(PageReq req);

    ResultData<BasePageResp<RewardQueueVO>> getRewardQueuePage(PageReq req);

    BaseResp issueRewardQueue(Long id, BigDecimal amount);

    ResultData<BasePageResp<BonusCountVO>> getBonusCountPage(BonusCountReq req);
}